export type LayoutType = 'markdown' | 'list' | 'grid' | 'GRAD' | 'WATERFALL';

import type { Tag } from './tag.ts'

export interface Doc {
  id: string;
  name: string;
  content: string;
  parentId?: string | null;
  namespaceId?: string;
  permission?: number; // 权限：0-私有，1-公开
  sortNo?: number;
  children?: Doc[];
  items?: DocumentItem[];
  tags?: Tag[];
  createdTime?: string;
  updatedTime?: string;
  layoutType?: LayoutType;
  isFavorite?: boolean; // 是否已收藏
  isShowToc?: boolean; // 是否显示目录
}

export interface DocumentItem {
  id?: string;
  documentId: string;
  name?: string;
  content: string;
  sortNo?: number;
  starRating?: number; // 星级评分（0-5，0表示未评分）
  completed?: boolean; // 是否已完成
  isTop?: boolean; // 是否置顶
  createdTime?: string;
  updatedTime?: string;
}

export interface DocumentItemRequest {
  documentId: string;
  name?: string;
  content: string;
  sortNo?: number;
  starRating?: number; // 星级评分（0-5，0表示未评分）
  completed?: boolean; // 是否已完成
  isTop?: boolean; // 是否置顶
}

export interface DocumentFavorite {
  id: string;
  documentId: string;
  documentName: string;
  createdTime: string;
}

export interface DocumentFavoriteRequest {
  documentId: string;
}